byte sloupce[] = {2,3,4,5,6,7,8,9};
byte radky[] = {A3,A2,A1,A0,10,11,12,13};

//dvojrozmerne pole pro obrazek
byte obrazek[8][8] =  {{1,1,1,1,1,1,1,1},
                      {1,0,0,0,0,0,0,1},
                      {1,0,1,1,1,1,0,1},
                      {1,0,1,0,0,1,0,1},
                      {1,0,1,0,0,1,0,1},
                      {1,0,1,1,1,1,0,1},
                      {1,0,0,0,0,0,0,1},
                      {1,1,1,1,1,1,1,1}};                 
                      
void setup(){
    for(int i = 0; i < 8; i++){
        //nastavime piny
        pinMode(sloupce[i], OUTPUT);
        pinMode(radky[i], OUTPUT);
        
        //zajistime vypnuti displeje
        digitalWrite(sloupce[i], HIGH); 
        digitalWrite(radky[i], LOW);
    }
}

void loop(){
    for(int i = 0; i < 8; i++){
        //zapneme radek i
        digitalWrite(radky[i], HIGH);
        
        //dale pracujeme s jednotlivymi sloupci
        for(int j = 0; j < 8; j++){
            //pokud je ve vybranem policku 1, rozsviti se LED
            if(obrazek[i][j] == 1){
                digitalWrite(sloupce[j], LOW);
            }
        }
        delay(1); //chvili pockame, aby byl obraz dostatecne jasny
        
        //vypneme vsechny sloupce
        for(int j = 0; j < 8; j++){
            digitalWrite(sloupce[j], HIGH);
        }
        
        //vypneme radek i
        digitalWrite(radky[i], LOW);
    }
}